package com.maple.utils.util

import android.text.TextUtils
import com.blankj.utilcode.util.RegexUtils as RUtil

class RegexUtils {
    companion object{
        //是否是手机号
        fun isPhone(phone:String?):Boolean{
            if(TextUtils.isEmpty(phone)){
                return false
            }

            if(!RUtil.isMobileSimple(phone)){
                return false
            }
            return true
        }
        //是否是有效的账号
        fun isAccount(account:String?):Boolean{
            if(TextUtils.isEmpty(account)){
                return false
            }
            if((account?.length ?: 0) < 6 || (account?.length ?: 0) > 18){
                return false
            }
            return true
        }

        //是否是有效的密码
        fun isPassword(pwd:String?):Boolean{
            if(TextUtils.isEmpty(pwd)){
                return false
            }
            if((pwd?.length ?: 0) < 6 || (pwd?.length ?: 0) > 18){
                return false
            }
            return true
        }

        //是否是身份证号 (包括15位,18位,末尾带X,x)
        fun isIDCard(idCard:String?):Boolean{
            if(TextUtils.isEmpty(idCard)){
                return false
            }

            if((idCard?.length ?: 0) < 15 || (idCard?.length ?: 0) > 18){
                return false
            }

            if(!RUtil.isIDCard15(idCard) && !RUtil.isIDCard18(idCard)){
                return false
            }

            return true
        }


        // 是否是邮箱
        fun isEmail(email:String?):Boolean{
            if(TextUtils.isEmpty(email)){
                return false
            }
            if((email?.length ?: 0) < 6){
                return false
            }

            if(!RUtil.isEmail(email)){
                return false
            }
            return true
        }


        private const val REGEX_BOX_NO = "^([1-9][0-9]*)\$"
        // 是否是数字 至少 6位 非 0 开头
        fun isNumber(number: String?): Boolean {
            if(TextUtils.isEmpty(number)){
                return false
            }
            if(!RUtil.isMatch(REGEX_BOX_NO,number)){
                return false
            }
            if((number?.length ?: 0) < 6){
                return false
            }
            return true
        }


        fun isIp(ip: String?): Boolean{
            if(TextUtils.isEmpty(ip)){
                return false
            }
            return RUtil.isIP(ip)
        }
    }
}